*****************************
*
* OVERSEER ROUTINES
*   AND MESSAGE 
*   PRINTERS
*
*****************************
*
STRPRNT EQU $5F40
STRNUM EQU $8EA  
XTAB EQU $8E7
YTAB EQU $8E8
STRTEMP EQU $8D3
TN EQU $31D
SN EQU $31E
BUFLO EQU $328
BUFHI EQU $329
READ EQU $33D 
READ8K EQU $3A4
XH EQU $9C3
YH EQU $9C4
OLDKEY EQU $9C0
ROW EQU $8CC
COL EQU $8CD
ERASEH EQU $1003
DIFF EQU $9EE
SAVEFLAG EQU $9DF
PARAMSAVE EQU $6918
SCOREPRINT EQU $1F30
DISPLAY EQU $1F33
*  
*
 ORG $1B00
*
*
COLDSTART LDA #7 
 JSR TMSGLONG  
 JSR KEYGET
 LDA #$B
 JSR TMSGLONG
 JSR KEYGET
 LDA #4
 JSR TMSGSHORT
QUE JSR KEYGET 
 JSR SEED
 LDA OLDKEY
 CMP #'R'
 BEQ LOADOLD
 CMP #'S'
 BEQ SCRATCH
 BNE QUE
*
*
SCRATCH LDA #0
 STA SAVEFLAG
 LDA #6
 JSR TMSGSHORT
QUE1 JSR KEYGET
 SEC 
 SBC #$B0
 BEQ QUE1
 CMP #9
 BCS QUE1
 STA DIFF
 DEC DIFF
 JSR $6603 ;PARMBLD
 JSR $6912 ;MAZESET
 JSR $6F00 ;INIT
 JMP WARMSTART
*
*
LOADOLD JMP OLDLOAD
*
*
HOTSTART JMP $6F96
*
WARMSTART LDA #$19
 LDX #0
 LDY #$20
 JSR READ8K
 LDA #$41 
 STA YH
 LDA #7
 STA XH
 LDA #$FF
 STA ROW
 LDA #3
 STA COL
 BIT $C057
 BIT $C052
 BIT $C054
 BIT $C050
 LDX #$F 
 LDA #0 
LOOP STA $E90,X
 DEX
 BPL LOOP ;NO OPS WANTED
 JSR $6F00 ;INIT 
 JSR STMSG0
 LDA #3
 STA $9ED ;LIVES
 STA $8E5
 LDA #0
 STA $8D5 ;BULLETS
 STA $8D0
 STA $8D1
 JMP HOTSTART  
*
*
OLDLOAD BIT SAVEFLAG
 BMI LOADIT
 JMP NONESAVED
LOADIT JSR $F3E2
 BIT $C052
 JSR $690F ;LOADGAM
 JSR $5700
 JSR ERASEH
 JMP HOTSTART
*
NONESAVED JSR $FF3A
 JSR $FC58
 LDA #12
 STA $25
 JSR $FD8E 
 LDX #0
LP LDA MSTR,X
 JSR $FDF0 
 INX
 CPX #10
 BNE LP
 LDX #$8  
LP1 LDA #$FF
 JSR $FCA8
 DEX
 BNE LP1
 JMP COLDSTART
*
*
SAVEONE LDA #$FF
 STA SAVEFLAG
 JSR SAVE900
 JSR $690C
 JMP HELPER
*
*
 ORG $6500
OUTOP1 JMP OUTOP
BLOWNUP JMP END1
FINI LDA #0
 STA $E3 ;COLLISION FLAG
 STA $9F6
 STA $9F7
 STA $9F8
 STA $9F9
 STA $9FA
 STA $8EF
 STA $8D0
 JMP END2 
*
*
OUTOP LDA #$81 
 STA YH
 DEC XH
 JSR PARAMSAVE
 LDA #$19
 LDX #0
 LDY #$20
 JSR READ8K
 JSR ERASEH
 LDA #$FF
 STA ROW
 BIT $8D0
 BMI GOTIT
 JSR ENDMSG4
 JMP WARMSTART
 RTS
*
GOTIT JSR ENDMSG2
 LDA #$F
 JSR TMSGSHORT
 JSR DASHES
 JSR SCOREPRINT
 BIT $C051
LPOUT BIT $C000  
 BPL LPOUT
 LDA #0
 STA $C010
 JMP COLDSTART
*
*
END1 JSR ENDMSG0
 JMP ENDOUT
*
END2 JSR ENDMSG1
ENDOUT BIT $C000
 BPL ENDOUT
 LDA #0
 STA $C010
 JSR SHOWSCORES
 LDA #5
 JSR TMSGSHORT
 BIT $C051
ENDKEY JSR KEYGET
 CMP #'O'
 BEQ REPLAY
 CMP #'N'
 BEQ NEWSTART
 JMP ENDKEY
*
REPLAY JMP WARMSTART
*
NEWSTART JMP COLDSTART
*
*
DASHES LDX #39
 LDA #'-'
SD STA 1576,X
 DEX 
 BPL SD
 RTS
*
*
MSTR DFB 'N','O','N','E',' ','S','A','V','E','D'
*
*
SAVE900 LDA #0
 STA BUFLO
 LDA #9
 STA BUFHI
 LDA #$22
 STA TN
 LDA #5
 STA SN
 JSR $352 ;WRITE
 RTS
*
*
SHOWSCORES BIT $C051 
 JSR $FC58
 LDA #$17
 STA $31D
 LDA #$F
 STA $31E
 LDA #0
 STA $328
 LDA #$20
 STA $329
 JSR $33D 
 DEC $31E
 INC $329
 JSR $33D 
 JSR DISPLAY
ZZZ RTS
*
*
 ORG $5600
*
*
HELPER LDA #0 
 JSR TMSGLONG
QUE2 JSR KEYGET 
 CMP #'S'
 BNE CMPR    
 JMP SAVEONE
CMPR CMP #'R' 
 BEQ RETURN 
 CMP #'Q'
 BEQ QUIT
 BNE QUE2
*
*
RETURN BIT $C057
 BIT $C052
 BIT $C054
 BIT $C050
 LDA #'S'
 STA OLDKEY
 JMP HOTSTART
*
*
QUIT JMP WIPE
*
*
*
*
TMSGLONG STA STRTEMP ;ENTER W SN IN ACC 
 LDA #5
 STA TN
 LDA #0
 STA BUFLO
 LDA #4
 STA BUFHI
 LDA STRTEMP
 STA SN
 JSR READ
 INC SN
 INC BUFHI
 JSR READ
 INC SN
 INC BUFHI
 JSR READ
 INC SN
 INC BUFHI
 JSR READ
 BIT $C051
 RTS
*
*
TMSGSHORT STA SN
 LDA #5
 STA TN
 LDA #0
 STA BUFLO
 LDA #4
 STA BUFHI
 JSR $FC58 ;CLEAR
 JSR READ
 BIT $C051
 RTS 
*
*
ENDMSG STA STRNUM
 LDA #$C      
 STA XTAB
 LDA #8
 STA YTAB
 JSR STRPRNT
 JSR WAITAWHILE  
 RTS
*
*
ENDMSG0 LDA #$1B ;BLOWN UP 
 JMP ENDMSG
*
ENDMSG1 LDA #$1C ;DIDNT MAKE IT 
 JMP ENDMSG
*
ENDMSG2 LDA #$1D ;MADE IT 
 JMP ENDMSG
*
ENDMSG3 LDA #$22 ;THE END 
 JMP ENDMSG
*
ENDMSG4 LDA #$23 ;NO IDOL
 JSR ENDMSG
 INC YTAB 
 INC YTAB
 INC STRNUM
 JSR STRPRNT
 RTS
*
*
STMSG0 LDA #$E
 STA STRNUM
 LDA #8
 STA YTAB
 LDA #20
 STA XTAB
 JSR STRPRNT
 INC YTAB
 INC XTAB
 INC YTAB
 DEC STRNUM
 JSR STRPRNT
 JSR KEYGET
 LDA #'W'
 STA OLDKEY
 RTS
*
*
*
*
*
*
 ORG $91E0 
*
*
WIPE LDX #$04
 LDA #$A0
WL1 STX WP+2
 LDY #$FF
WP STA $9000,Y
 DEY
 BNE WP
 INX
 CPX #$90
 BNE WL1
 JMP $3D0G
*
*
 ORG $1D80
*
*
WAITAWHILE LDX #12 ;EXPERIMENT 
WLP LDA #$FF        
 JSR $FCA8 ;WAIT
 DEX
 BNE WLP
 RTS
*
*
SEED LDA $4E
 STA $10
 STA $12
 LDA $4F
 STA $11
 STA $13
 RTS
*
*
KEYGET INC $4E
 BNE HIBYT
 INC $4F
HIBYT BIT $C000
 BPL KEYGET
 LDA $C000
 STA OLDKEY
 LDA #0
 STA $C010
 LDA OLDKEY
 RTS
